Capacity management is used to manage computing resources in a data center. Effective capacity management may strive to accomplish two objectives of efficiency and availability. Efficiency is the efficient use of existing capacity and also the minimizing of any waste of computing resources. Availability is leaving enough capacity headroom to accommodate any spikes in computing resource demands. These two objectives may conflict with each other. For example, right-sizing computing resource capacity to achieve high efficiency may come at the cost of sacrificing capacity availability. Also, provisioning an additional capacity buffer may reduce capacity efficiency. Accordingly, capacity planning tools to balance the objectives may be very helpful.
Capacity management in a virtual environment may introduce more challenges in comparison with managing just physical computing resources. When just physical computing resources are taken into account, capacity planning tools can rely on a 1-1 mapping between computing resource capacity and computing resource workload. However, in a virtual environment, the physical computing resources are shared across multiple virtual machines. Other features of virtualization, such as high availability (HA), distributed resource scheduling (DRS), fault tolerance (FT) impact the true capacity requirements of a virtual machine and make the process of capacity planning more challenging and unreliable. Further, the virtual environment has overcommitment of resources, calculation of entitlement as a capacity estimate instead of just relying on configured size where entitlement is based on configuration, shares, and limits, and the use of resource pools also compound the problem. Further, when storage-related features, such as linked clones and thin provisioning, are used in the virtualization environment, the process of estimating capacity requirements becomes even more difficult.